const sequelize = require('../config/database')
const { DataTypes } = require('sequelize')

// 导入模型定义
const User = require('./user')(sequelize, DataTypes)
const Announcement = require('./announcement')(sequelize, DataTypes)

// 建立模型之间的关联 - 已移除所有关联

// 同步所有模型到数据库
async function syncModels() {
  try {
    // 先禁用外键检查，删除表，再启用外键检查
    await sequelize.query('SET FOREIGN_KEY_CHECKS = 0')

    // 手动删除traffic_events表
    await sequelize.query('DROP TABLE IF EXISTS `traffic_events`')

    // 更新其他表
    await sequelize.sync({ force: false })

    // 重新启用外键检查
    await sequelize.query('SET FOREIGN_KEY_CHECKS = 1')

    console.log('所有模型已同步到数据库')
  } catch (error) {
    console.error('模型同步失败:', error)
  }
}

syncModels()

// 导出所有模型
module.exports = {
  sequelize,
  User,
  Announcement,
}
